Historic advances in computer technology have made it economical for individual users to have their own computing system, which caused the proliferation of the personal computer (PC). Continued advances of this computer technology have made these personal computers very powerful but also complex and difficult to manage. For this and other reasons such as corporate security, there is a desire in many workplace environments to separate user interface devices, including the display, keyboard, mouse, audio and other peripheral devices from the storage and application processing parts of the computing system. In this configuration, the user interface devices are physically located at the desktop, while the processing and storage components of the computer are placed in a central location. The user interface devices are then connected to the processing and storage components, herein referred to as the “host computer system” with some method of communication.
It has also become popular for centralized computing systems to use software virtualization technologies such as Xen, VMWare™ or others that enable a host computer system to simultaneously host multiple isolated user environments, each with its own application software, operating system, memory resources and network connection. In the case of both 1:1 systems (where 1:1 describes systems with a single remote computer with user-interface connected to a single host computer system) and N:1 systems (N user interfaces connected to a single host computer system), there is a need for efficient methods to bridge the various user interface devices such as display, audio, USB, Firewire™ or other peripherals between the host computer system and remote user interface systems.
Existing methods for enabling communications between remote peripheral devices and a virtualized host computer environment use software driver bridging protocols within a virtual machine framework such as GDI from VMware. Products incorporating software driver bridging protocols include ICA from Citrix Systems, Remote Desktop Protocol (RDP) from Microsoft Corporation, VNC or others. These methods require complementary client bridging software and drivers at the remote computer to complete the software bridging function. A problem with N:1 systems using bridged drivers is that the remote computer is burdened with maintainable software which in turn increases processing requirements and adds to computer support costs.
Network interfaces and network storage products such as virtualized fibre channel host bus adapters with N_Port ID virtualization provide a bridge between multiple virtual machines and remote systems. Specifically, the N_Port ID extension to the fibre channel specification allows multiple virtual machines to share a physical port of a single fibre channel host bus adapter (HBA). These virtualized N_Port IDs allow a physical fibre channel port to appear as multiple, distinct ports, providing separate port identification and security zoning within the fabric for each operating system image. The I/O transactions of each virtual machine are separately identified, managed, and transmitted, and are processed the same as if each operating system image had its own unique physical port.
Existing bridging methods such as N_Port ID virtualization are unsuited to enabling devices with compound compatibility requirements to be associated with a virtual machine. They lack the synchronization capabilities and data transfer structures necessary for the communication of a diversity of time critical signals between a remote user interface and a virtual machine in a host computer system. In summary, existing methods for bridging remote devices either use software bridging techniques with significant complexity at the remote user interface or other bridging methods limited to enabling the virtualization of sub-systems such as networked storage arrays with monolithic interface requirements. Therefore, a better method for enabling communications between a virtualized host computer system and remote user interface devices that meets the technical and economic objectives of centralized host computing is needed.